// 订单模型
const { Role, validateRole } = require('../../../models/role');
// 权限模型
const { AuthOne, AuthTwo, AuthThree } = require('../../../models/auth');
// 统一数据返回类
const { DataReturn } = require('../../../common/returnclass');

/**
 * @api {Put} /roles/:id 修改角色
 * @apiGroup Admin-Roles
 *
 * @apiParam {ObjectId} id 角色id
 * @apiParam {String} roleName 角色名称
 * @apiParam {String} roleDesc 角色描述
 * @apiParam {Array} auth 角色权限
 *
 * @apiSuccess {Number} code 状态码
 * @apiSuccess {Object} data 返回数据
 * @apiSuccess {String} msg  返回消息
 */
module.exports = async (req, res) => {
	// 角色id
	let { id } = req.params;
	// 角色名称 角色描述
	let { roleName, roleDesc, auth } = req.fields;
	
	// 当传过来的是分类权限数据时
	if (auth) {
		console.log(req.fields)
		
		// 保存商品信息
		Role.updateOne({ _id:id}, { children: auth })
		.then((result)=>{
			DataReturn.getData(res,200,[],'分配角色权限成功')
		}).catch((err)=>{
			DataReturn.getData(res,400,[],'修改角色权限失败')
		})
		return;
	}
	
	// 修改角色信息时
	console.log(req.params,req.fields);
	// 数据格式校验
	const { error } = validateRole(req.fields);
	// 格式不符合要求
	if (error) return DataReturn.getData(res,400,[],error.message);
	
	// 保存商品信息
	Role.updateOne({ _id:id}, req.fields)
	.then((result)=>{
		DataReturn.getData(res,200,[],'修改角色信息成功')
	}).catch((err)=>{
		DataReturn.getData(res,400,[],'修改角色信息失败')
	})
	
};